﻿////////////////////////////////////////////////////////////////////////////
//  Copyright 2009 - 2011 Zach Snow                                       //
////////////////////////////////////////////////////////////////////////////
//  This file is part of WindowsWhere.                                    //
//                                                                        //
//  WindowsWhere is free software: you can redistribute it and/or modify  //
//  it under the terms of the GNU General Public License as published by  //
//  the Free Software Foundation, either version 3 of the License, or     //
//  (at your option) any later version.                                   //
//                                                                        //
//  WindowsWhere is distributed in the hope that it will be useful,       //
//  but WITHOUT ANY WARRANTY; without even the implied warranty of        //
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         //
//  GNU General Public License for more details.                          //
//                                                                        //
//  You should have received a copy of the GNU General Public License     //
//  along with WindowsWhere.  If not, see <http://www.gnu.org/licenses/>. //
////////////////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Drawing;

namespace WindowsWhere
{
  /// <summary>
  /// Contains all of updateable the settings that WindowsWhere needs.
  /// </summary>
  [XmlRoot(ElementName = "WindowsWhereSettings")]
  public class WindowsWhereSettings
  {
    [XmlElement(ElementName = "WaitTime")]
    public int WaitTime
    {
      get;
      set;
    }

    [XmlElement(ElementName = "IsRunning")]
    public bool IsRunning
    {
      get;
      set;
    }

    [XmlElement(ElementName = "EnableForAllWindows")]
    public bool EnableForAllWindows
    {
      get;
      set;
    }

    [XmlElement(ElementName = "WindowSettings")]
    public SerializableDictionary<string, WindowSettings> WindowSettings
    {
      get;
      set;
    }

    public WindowsWhereSettings()
    {
      //Default values.
      WaitTime = 100;
      IsRunning = false;
      EnableForAllWindows = false;
      WindowSettings = new SerializableDictionary<string, WindowSettings>();
    }
  }

  /// <summary>
  /// Contains all of the settings needed to correctly place a newly
  /// created Explorer window.
  /// </summary>
  public class WindowSettings
  {
    [XmlElement(ElementName = "Rectangle")]
    public Rectangle Rectangle
    {
      get;
      set;
    }

    public WindowSettings()
    {
    }

    public WindowSettings(Rectangle r)
    {
      Rectangle = r;
    }
  }
}
